package com.vv.edu.info.manager.dao;

import com.vv.edu.info.manager.domain.StudentDomain;

public class StudentDao implements BaseStudentDao {
    // 创建学生对象数组
    private static final StudentDomain[] stus = new StudentDomain[5];
    static{
        StudentDomain stu1 = new StudentDomain("001", "vv", "18", "1999-07-30");
        stus[0] = stu1;
    }
    public boolean addStuent(StudentDomain stu) {
        // 添加学生到数组
        int index = -1; // 默认索引为-1  数组满员状态
        for (int i = 0; i < stus.length; i++) {
            StudentDomain student = stus[i];
            if(student == null){
                index = i;        // 如果为null，index记录索引，并break结束遍历
                break;
            }
        }
        if(index == -1){
            // 装满了
            return false;
        }else{
            // 没有装满
            stus[index] = stu;
            return true;
        }
    }

    public StudentDomain[] findAllStudent() {
        return stus;
    }

    public void deleteStudentById(String delId) {
        // 1. 查找id在容器中所在的索引位置
        int index = getIndex(delId);
        // 2. 将该索引位置，使用null元素进行覆盖
        stus[index] = null;
    }

    public int getIndex(String id){
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            StudentDomain stu = stus[i];
            if(stu != null && stu.getId().equals(id)){
                index = i;
                break;
            }
        }
        return index;
    }

    public void updataStudent(String updataId, StudentDomain newStu) {
        // 1. 查找updataId 在容器中的索引位置
        int index = getIndex(updataId);
        // 2. 将对应索引查寻到的对象进行替换
        stus[index] = newStu;
    }
}
